#ifndef QUEUE_H
#define QUEUE_H
/* queue.h
 *  A FIFO data structure.
 */
 #include <stdio.h>
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>

 typedef struct cqentry { 
	void* data;
	struct cqentry* next; 
 } qentry; 

 typedef struct cque {
	qentry* toq;                               /* Pointer to top of object list  */
	qentry* boq;				  /* Pointer to bottom of object list */
	int    cqsize;                             /* Current number of elems */
 } *queue;

 queue queue_init(void);
 void  queue_push(queue q, void* value, size_t vsz);
 void* queue_pop(queue q);
 void  queue_destroy(queue q);
 void  queue_print(queue q);
#endif
